#include "pch.hpp"
#include "GlyphWidget.hpp"




GlyphWidget::GlyphWidget(AdvancedGlyph& glyph, QAbstractItemView* itemView, const QModelIndex& index)
	: EditWidget(itemView, index)
	, m_glyph(glyph)
{
	ui.setupUi(this);

	connect(ui.nameEdit, SIGNAL(textChanged(QString)), SLOT(onNameChanged()));

	discard();
}
///////////////////////////////////////////////////////////////////////////////////////////////////




void GlyphWidget::setReadOnly(bool b)
{
	ui.nameEdit->setReadOnly(b);
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void GlyphWidget::apply() const
{
	if(ui.nameEdit->text().size() != 0)
		m_glyph.setName(ui.nameEdit->text());
	else
		ui.nameEdit->setText(m_glyph.name());
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void GlyphWidget::discard()
{
	ui.fileEdit->setText(m_glyph.fileName());
	ui.nameEdit->setText(m_glyph.name());
	ui.widthLabel->setText(QString("%1 px").arg(m_glyph.size().width));
	ui.heightLabel->setText(QString("%1 px").arg(m_glyph.size().height));
}
///////////////////////////////////////////////////////////////////////////////////////////////////

bool GlyphWidget::hasChanged() const
{
	return ui.nameEdit->text() != m_glyph.name();
}
///////////////////////////////////////////////////////////////////////////////////////////////////

void GlyphWidget::onNameChanged()
{
	emit changed();
}
///////////////////////////////////////////////////////////////////////////////////////////////////
